// 时间格式化工具 - 只显示年月日
function formatDate(dateStr) {
  if (!dateStr) return '';
  
  // 转换为字符串
  const str = dateStr.toString();
  
  // 如果已经是 YYYY-MM-DD 格式，直接返回
  if (/^\d{4}-\d{2}-\d{2}$/.test(str)) {
    return str;
  }
  
  // 处理完整时间格式 YYYY-MM-DD HH:mm:ss
  if (str.indexOf(' ') > -1) {
    return str.split(' ')[0];
  }
  
  // 处理包含 T 的 ISO 格式 2024-01-01T12:00:00
  if (str.indexOf('T') > -1) {
    return str.split('T')[0];
  }
  
  // 处理时间戳（毫秒）
  if (/^\d{13}$/.test(str)) {
    const date = new Date(parseInt(str));
    if (date && !isNaN(date.getTime())) {
      const year = date.getFullYear();
      const month = (date.getMonth() + 1).toString().padStart(2, '0');
      const day = date.getDate().toString().padStart(2, '0');
      
      return `${year}-${month}-${day}`;
    }
  }
  
  // 处理时间戳（秒）
  if (/^\d{10}$/.test(str)) {
    const date = new Date(parseInt(str) * 1000);
    if (date && !isNaN(date.getTime())) {
      const year = date.getFullYear();
      const month = (date.getMonth() + 1).toString().padStart(2, '0');
      const day = date.getDate().toString().padStart(2, '0');
      
      return `${year}-${month}-${day}`;
    }
  }
  
  // 如果都不匹配，尝试作为日期字符串解析
  const date = new Date(str);
  if (date && !isNaN(date.getTime())) {
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0');
    const day = date.getDate().toString().padStart(2, '0');
    
    return `${year}-${month}-${day}`;
  }
  
  // 如果都失败，返回原字符串
  return str;
}

module.exports = {
  formatDate
};

